package com.cskaoyan._03innerclazz._04local._01introduction;

/**
 * @description:
 * @author: 景天
 * @date: 2023/2/13 15:08
 **/
/*
局部内部类是定义在一个方法或者一个作用域里面的类，简单来说，
将局部内部类看成是局部变量即可，该类的有效范围仅在作用域内部。
（这意味着要创建它的对象，必须在作用域内部创建）

位置:局部位置
语法:class 类名{类体}

局部内部类的特点
    1.权限修饰符
        不需要了,没有意义,只在作用域内有效
    2.成员特点
        不能有静态声明
        可以有全局常量,构造方法,构造代码块
    3.继承和实现
        可以继承和实现外部的类和接口,重要的作用


 */
public class Demo {
    public static void main(String[] args) {
        // 局部位置
        // 局部变量
        int a =1;
        // int b =1;

    }
}
// 外部类
class Outer{
    // 成员方法
    public void outerNormalMethod() {
        // 局部位置
        class Inner{
            // 全局常量
            public static final int aa = 100;
            // 成员变量
            int a = 1;
            // 成员方法
            void innerMethod() {

            }

            // 静态成员变量
            // Inner classes cannot have static declarations
            // static String s = "aaa";
            // 静态方法
            //static void innerStaticMethod() {
            //
            //}
            // 构造方法

            public Inner() {
            }

            // 构造代码块
            {

            }

            // 静态代码块
            // static {}
        }
    }

    // 静态方法
    public static void outerStaticMethod() {
        // 局部位置
        class Inner extends Father implements IA{

        }
    }

}

class Father{

}

interface IA{

}